$(function() {
	var login_title = $(".q-login-tab-item"); //登陆方式
	var show_num = [];//识别码
	var captcha=-1;//短信验证码 0服务器故障 -1初始值 其他：短信验证码
	var login_type=1;//1:账号,2短信
	var all_input=$(".q-login-layout input");
	$(login_title[1]).click(function() { //账号登陆
		$(".account-login").css("display", ""); //显示账号登陆界面
		$(".sms-login").css("display", "none");
		$(this).addClass("current"); //标题下划线
		$(login_title[2]).removeClass("current");
		login_type=1;
		draw();
		for(var i=0;i<all_input.length;i++){//清除输入的数据
			all_input[i].value="";
		}
	});
	$(login_title[2]).click(function() { //短信登陆
		$(".account-login").css("display", "none");
		$(".sms-login").css("display", ""); //显示短信登陆界面
		$(this).addClass("current"); //标题下划线
		$(login_title[1]).removeClass("current");
		login_type=2;
		draw();
		for(var i=0;i<all_input.length;i++){//清除输入的数据
			all_input[i].value="";
		}
	});
	var send_captcha = $(".btn-valid"); //发验证码按钮
	var login_btn = $(".q-login-form-control .btn"); //登陆按钮
	var succes_tip = $(".q-login-tips"); //登陆成功提示框
	var checkFunction=[];
	function checkUser(str){//用户名(密码)检查,验证规则：字母、数字、下划线组成，字母开头，4-16位。
	  if(str==null||str.length==0||str==""){
		  return false;
	  }
	  return true;
	}
	checkFunction[0]=checkUser;
	function checkPass(str){
		var re = /^[a-zA-z]\w{7,15}$/;
		if(re.test(str)){
		  return true;
		}else{
		  return false;
		}
	}
	function checkMobile(str) {//手机号码,验证规则：11位数字，以1开头。
	  var re = /^1\d{10}$/
	  if (re.test(str)){
	    return true;
	  }else{
	    return false;
	  }
	}
	checkFunction[1]=checkMobile;
	//邮箱
    //验证规则：姑且把邮箱地址分成“第一部分@第二部分”这样。第一部分：由字母、数字、下划线、短线“-”、点号“.”组成；第二部分：为一个域名，域名由字母、数字、短线“-”、域名后缀组成，而域名后缀一般为.xxx或.xxx.xx，一区的域名后缀一般为2-4位，如cn、com、net，现在域名有的也会大于4位
	function checkEmail(str){
	  var re = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/
	  if(re.test(str)){
	    return true;
	  }else{
	    return false;
	  }
	}
	checkFunction[2]=checkEmail;
	login_btn.click(function() {//登陆事件
		var num=show_num.join("").toLowerCase();//验证码
		var input_num=$("#canvas").parent().siblings("input");//输入的验证码
		var input_val=[];//输入的数据 账号，密码或短信
		var type=0;//登陆名类型.  1.用户名  2.手机  3.邮箱 0.error
		if(login_type==1){//账号登陆
			var input=$(".account-login input");
			for(var i=0;i<input.length;i++){//获取登陆名，及密码
				input_val[i]=input[i].value;
			}
			for(var i=0;i<checkFunction.length;i++){//登陆名验证
				if(checkFunction[i](input_val[0])) type=i+1;
			}
			if(type==0){//登陆名未通过验证
				show_tip(2,"账号错误",1);
				draw();
				return ;
			}
			if(!checkPass(input_val[1])){//密码错误
				show_tip(2,"密码错误",1);
				draw();
				return ;
			}
		}else if(login_type==2){//短信登陆
			var input=$(".sms-login input");
			for(var i=0;i<input.length;i++){//获取手机号，及验证码
				input_val[i]=input[i].value;
			}
			if(!checkMobile(input_val[0])){//手机号错误
				show_tip(2,"手机号错误",1);
				draw();
				return ;
			}
			if(captcha==0){
				show_tip(2,"服务器故障",1);
				draw();
				return ;
			}else if(captcha==-1){
				show_tip(2,"请先获取验证码",1);
				draw();
				return ;
			}
			if(input_val[1]!=captcha){//验证码错误
				show_tip(2,"短信验证码错误",1);
				draw();
				return ;
			}
		}
		if(!(num==input_num.val().toLowerCase())){//识别码否正确
			show_tip(2,"识别码错误",1);
			input_num.val("");
			draw();
			return ;
		}
		
		show_tip(3,"正在登陆中",10);
		
		//验证是否存在该账号
		$.ajax({
			  url: "./Myservlet?method=login",
			  type: 'post',
			  data:{
				  type:login_type,//登陆类型(1账号2短信)
				  account_type:type,//账号登陆的类型  1用户名 2手机号 3邮箱
				  name:input_val[0],//账号名
				  pass:input_val[1]//密码或短信验证码
			  },
			  dataType: "json",
			  error:function(XMLHttpRequset,textStatus,errorThrown){
				  console.log("请求错误");
				  console.log(errorThrown);
				  show_tip(2,"服务器错误",1);
			  },
			  success: function(data) {
			  	/*图片验证*/
					 draw();
					 if(data.code==-1){
						  show_tip(2,"数据库故障",1);
					 }else if(data.code==0){
						  show_tip(2,"账号或密码错误",1);
					 }else if(data.code==1){
					 	// 判定是否是存在hotel_id请求的登录---需要跳转回买东西的界面
						var hotel_id = getUrlParam("hotel_id");
						if (hotel_id==null||hotel_id==''||hotel_id=="null") {
							location.href = "http://localhost:8080/JavaWeb%E9%A1%B9%E7%9B%AE_%E7%AC%AC%E5%85%AD%E7%BB%84/jsp/zc/travel_person.jsp"; //跳转到新页面
						    show_tip(1,"登陆成功",10);
						}else{
							window.location.href="./jsp/lsx/travel_Store_jpyd.jsp?hotel_id="+hotel_id;
						}
					 }
			  }
		});
	});
	
	
//获取url中的参数
function getUrlParam(name) {
	var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
	var r = window.location.search.substr(1).match(reg); //匹配目标参数
	if (r != null) return decodeURI(r[2]);
	return null; //返回参数值
}
	
	function show_tip(src,text,time){//src:提示框1成功，2失败,3正在登陆 
		time*=1000;
		if(src==1) src="images/zc/person/success@2x.png";
		else if(src==2) src="images/zc/person/fail@2x.png";
		else if(src==3) src="images/zc/person/wait_34.gif";
		succes_tip.find(".text").text(text);//设置提示内容
		succes_tip.find(".icon").css("background","url("+src+") 50%/18px 18px no-repeat");//设置提示标志
		succes_tip.find(".tip").css("width","auto");
		succes_tip.css("display", ""); //显示提示框（成功）
		setTimeout(function() {
			succes_tip.css("display", "none"); //关闭提示框
		},time); //2秒后关闭
	}
	send_captcha.click(function() {//发送验证码
		show_tip(3,"操作中,请稍后...",10);
		var phone=$(".sms-login input")[0].value;
		if(!checkMobile(phone)){//手机号错误
			show_tip(2,"手机号错误",1);
			return ;
		}
		show_tip(3,"操作中,请稍后...",0);
		count_down(60, $(this).find("span"), $(this));//倒计时
		$.ajax({//从后台获取验证码
			  url: "./Myservlet?method=getCaptcha",
			  type: 'get',
			  data:{
				  phone:phone
			  },
			  dataType: "json",
			  error:function(XMLHttpRequset,textStatus,errorThrown){
				  console.log("请求错误");
				  console.log(errorThrown);
				  show_tip(2,"短信服务错误",1);
			  },
			  success: function(data) {
					 if(data.code==-1){
						  show_tip(2,"短信服务故障",1);
					 }else{
						  captcha=data.code;
					 }
			  }
		});
	});
	function count_down(time, ele, ele2) { //倒计时
		ele2.css({//父级元素（因为canves不可添加点击事件）
			"pointer-events": "none",
			"background-color": "#7b7b7b"
		}); //禁用点击事件及改变底色
		ele.text("重新发送(" + time + ")");
		var inter = setInterval(function() {
			time--;
			ele.text("重新发送(" + time + ")");
			if (time < 0) {
				clearInterval(inter);
				ele.text("发送验证码");
				ele2.css({
					"pointer-events": "",
					"background-color": "#5cad77"
				}); //禁用点击事件
			}
		}, 1000);
	}
		draw();
		var canvas = document.getElementById("canvas"); //获取到canvas的对象，演员
		$(canvas).parent().click(function(){
			draw();
		});
		function draw() {//验证码图片
			var canvas = document.getElementById("canvas");//获取到canvas的对象，演员
			var canvas_width = canvas.clientWidth;
			var canvas_height = canvas.clientHeight;
			var context = canvas.getContext("2d"); //获取到canvas画图的环境，演员表演的舞台
			canvas.width = canvas_width;
			canvas.height = canvas_height;
			var sCode =
				"A,B,C,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,W,X,Y,Z,1,2,3,4,5,6,7,8,9,0,q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m";
			var aCode = sCode.split(",");
			var aLength = aCode.length; //获取到数组的长度

			for (var i = 0; i <= 3; i++) {
				var j = Math.floor(Math.random() * aLength); //获取到随机的索引值
				var deg = Math.random() * 30 * Math.PI / 180; //产生0~30之间的随机弧度
				var txt = aCode[j]; //得到随机的一个内容
				show_num[i] = txt;
				var x = 10 + i * 20; //文字在canvas上的x坐标
				var y = 20 + Math.random() * 8; //文字在canvas上的y坐标
				context.font = "bold 23px 微软雅黑";

				context.translate(x, y);
				context.rotate(deg);

				context.fillStyle = randomColor();
				context.fillText(txt, 0, 0);

				context.rotate(-deg);
				context.translate(-x, -y);
			}
			for (var i = 0; i <= 5; i++) { //验证码上显示线条
				context.strokeStyle = randomColor();
				context.beginPath();
				context.moveTo(Math.random() * canvas_width, Math.random() * canvas_height);
				context.lineTo(Math.random() * canvas_width, Math.random() * canvas_height);
				context.stroke();
			}
			for (var i = 0; i <= 30; i++) { //验证码上显示小点
				context.strokeStyle = randomColor();
				context.beginPath();
				var x = Math.random() * canvas_width;
				var y = Math.random() * canvas_height;
				context.moveTo(x, y);
				context.lineTo(x + 1, y + 1);
				context.stroke();
			}
		}

		function randomColor() { //得到随机的颜色值
			var r = Math.floor(Math.random() * 256);
			var g = Math.floor(Math.random() * 256);
			var b = Math.floor(Math.random() * 256);
			return "rgb(" + r + "," + g + "," + b + ")";
		}
		
	// console.log($(".q-login-tips"));
});
